Ext.namespace('ServicioPassword');

ServicioPassword.txt_oldPassword = comunes.crear_password_formulario('ServicioPassword_txt_oldPassword', 'Clave Actual', 30, 6, 15, true, false, false, '', '', 'ServicioPassword_txt_newPassword');
ServicioPassword.txt_newPassword = comunes.crear_password_formulario('ServicioPassword_txt_newPassword', 'Nueva Clave', 30, 6, 15, true, false, false, 'fncValidaPassIguales', '', 'ServicioPassword_txt_repnewPassword');
ServicioPassword.txt_repnewPassword = comunes.crear_password_formulario('ServicioPassword_txt_repnewPassword', 'Repetir Clave', 30, 6, 15, true, false, false, 'fncValidaPassIguales', '', 'ServicioPassword_btn_Guardar');
 
ServicioPassword.btn_Guardar = new Ext.Button({
    iconCls : 'btnGuardar',
    id : 'ServicioPassword_btn_Guardar',
    name : 'ServicioPassword_btn_Guardar',
    text : 'Guardar',
    formBind : true,
    handler : function() {
        if (ServicioPassword.txt_newPassword.getValue() != ServicioPassword.txt_oldPassword.getValue()) {
            if (ServicioPassword.txt_newPassword.getValue() == ServicioPassword.txt_repnewPassword.getValue()) {
                Ext.Ajax.timeout = 90000000;
                Ext.MessageBox.wait('Cambiando contraseña...');
                Ext.Ajax.request({
                    url : 'ConeccionesAJAX/ServicioPasswordAJAX.' + extensionServidor,
                    params : {
                        accion : 'grabarNuevaClave',
                        p_str_old_password: hex_md5(ServicioPassword.txt_oldPassword.getValue()),
                        p_str_new_password: hex_md5(ServicioPassword.txt_newPassword.getValue())                                                 
                    },
                    method : 'POST',
                    success : function(action) {
                        ServicioPassword.obj = Ext.util.JSON.decode(action.responseText);               
                        Ext.MessageBox.hide();
                        if (ServicioPassword.obj.success){
                            Ext.MessageBox.show({
                                title : 'Información',
                                msg : ServicioPassword.obj.created[0].GLS_ERROR,
                                buttons : Ext.Msg.OK,
                                icon : Ext.MessageBox.INFO,
                                fn : function() {
                                    if (ServicioPassword.obj.created[0].NUM_ERROR == 0) {
                                        parent.location = "../../Login.aspx"
                                    }
                                    ServicioPassword.txt_oldPassword.setValue('');
                                    ServicioPassword.txt_newPassword.setValue('');
                                    ServicioPassword.txt_repnewPassword.setValue('');
                                }
                            });
                        }
                        else {
                            Ext.MessageBox.show({
                                title : 'Error',
                                msg : ServicioPassword.obj.errors.desc,
                                buttons : Ext.Msg.OK,
                                icon : Ext.MessageBox.ERROR
                            });    
                        }
                    },
                    failure : function(resp, opt) {
                        Ext.MessageBox.hide();
                        Ext.MessageBox.show({
                            title : 'ERROR',
                            msg : 'No se pudo establecer comunicacion con el servidor.',
                            buttons : Ext.Msg.OK,
                            icon : Ext.MessageBox.ERROR
                        });
                    }
                });
            }
            else {
                Ext.MessageBox.show({
                    title : 'ERROR',
                    msg : 'Las claves nuevas no coinciden',
                    buttons : Ext.Msg.OK,
                    icon : Ext.MessageBox.ERROR,
                    fn : function(){ 
                        //ServicioPassword.txt_oldPassword.setValue('');
                        //ServicioPassword.txt_newPassword.setValue('');
                        ServicioPassword.txt_repnewPassword.setValue('');
                    }
                });
            }
        }
        else {
            Ext.MessageBox.show({
                title : 'ERROR',
                msg : 'La clave nueva debe ser distinta a la anterior.',
                buttons : Ext.Msg.OK,
                icon : Ext.MessageBox.ERROR,
                fn : function(){ 
                    //ServicioPassword.txt_oldPassword.setValue('');
                    ServicioPassword.txt_newPassword.setValue('');
                    ServicioPassword.txt_repnewPassword.setValue('');
                }
            });
        }
    }
        
});
 
ServicioPassword.Formulario = new Ext.form.FormPanel(
{
    id : 'ServicioPassword_Formulario',
    name : 'ServicioPassword_Formulario',
    labelAlign : 'left',
    frame : true,
    defaults : {
        bodyStyle : 'padding: 0px 0px 0px 0px'
    }, 
    monitorValid : true,
    autoHeight : true,
    autoDestroy : true,        
    layout : 'form',        
    items : [ServicioPassword.txt_oldPassword,ServicioPassword.txt_newPassword,ServicioPassword.txt_repnewPassword],       
    buttons : [ServicioPassword.btn_Guardar],
    buttonAlign: 'center'
});

ServicioPassword.Ventana = new Ext.Window({
    layout: 'fit',
    title: 'Cambiar Clave',
    iconCls: 'winLogin',
    width: 400,
    autoHeight: true,   
    plain: true,
    closable: false,
    modal: true,
    resizable : false,
    draggable : false,
    items: [ServicioPassword.Formulario]
});

function fncValidaPassIguales() {
    var password1 = ServicioPassword.txt_newPassword.getValue();
    var password2 = ServicioPassword.txt_repnewPassword.getValue();
    if(password1 != '' && password2 != ''){
        if(password1 != password2){
            return 'Las contraseñas no coinciden.';
        }else{
            return true;
        }
    }else{
        return true;
    }
}






